<?php

namespace common\helpers;


class ValidatorHelper
{
    // 手机号
    const PATTEN_MOBILE = '/^1\d{10}$/';

    // 固话
    const PATTEN_PHONE = '/^0\d{9,11}$/';

    // 邮箱
    const PATTEN_EMAIL = '/^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/';

    // 密码【同时包含数字和字母，最少8位字符】
    const PATTEN_PASSWORD = '/^(?=.*[0-9])(?=.*[a-zA-Z])(.{8,})$/';

    // 日期精确到分钟
    const PATTEN_DATE_MINUTES = '/^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$/';

    // url格式
    const PATTEN_URL = '/^(http:\/\/|https:\/\/)/';

    /**
     * 验证手机号
     *
     * @param $value
     * @return bool
     */
    public static function validateMobile($value): bool
    {
        return preg_match(self::PATTEN_MOBILE, $value) ? true : false;
    }

    /**
     * 验证固话
     *
     * @param $value
     * @return bool
     */
    public static function validatePhone($value): bool
    {
        return preg_match(self::PATTEN_PHONE, $value) ? true : false;
    }

    /**
     * 验证邮箱
     *
     * @param $value
     * @return bool
     */
    public static function validateEmail($value): bool
    {
        return preg_match(self::PATTEN_EMAIL, $value) ? true : false;
    }

    /**
     * 验证密码
     *
     * @param $value
     * @return bool
     */
    public static function validatePassword($value): bool
    {
        return preg_match(self::PATTEN_PASSWORD, $value) ? true : false;
    }

    /**
     * 验证密码
     *
     * @param $value
     * @return bool
     */
    public static function validateDate($value): bool
    {
        return preg_match(self::PATTEN_DATE_MINUTES, $value) ? true : false;
    }

    /**
     * 验证url
     * @param $value
     * @return bool
     */
    public static function validateUrl($value): bool
    {
        return preg_match(self::PATTEN_URL, $value) ? true : false;
    }
}
